#ifndef cola_h
#define cola_h

#include "Lista.h"

template <typename T>
class Cola{
      private:
          Lista<T> cola;
          
      public:
          
          Cola();
          ~Cola();
        
          void encolar( const T& );
          void desencolar();
        
          T& getPrimero();
          
          void limpiar();

};

template < typename T >
Cola < T > :: Cola(){
}

template < typename T >
Cola < T > :: ~Cola(){
}

template < typename T >
void Cola < T > :: encolar( const T &elem){
    cola.push_back(elem);
}

template < typename T >
void Cola < T > :: desencolar(){
    cola.pop_front();
}

template < typename T >
T& Cola < T > :: getPrimero(){
    return cola.front();
}

template < typename T >
void Cola < T >  :: limpiar(){
    cola.clear();
}

#endif
